Ext.onReady(function(){

    //Para semestres traer desde 1 o 2, hasta el mayor de la tabla materia por carreras
    var years = [];
    var semesters = [];
    var secciones = ['A','B','C','D','E','F','G'];
    //    var tipos = ["Reprogramar Horario","Editar Horario"];
    //tipos.push("Reprogramar Horario","Editar Horario")
    var today = new Date();
    currYear  = today.getFullYear();
    currMonth = today.getMonth();

    currSem = 1;
    if(currMonth > 6)
        currSem = 2;

    /*y = 2010
    while (y<=currYear){
        years.push([y]);
        y++;
    }*/

    years.push([currYear]);
    years.push([currYear-1]);
    years.push([currYear+1]);

    s = 1;
    while (s<=12){
        semesters.push([s]);
        s++;
    }
    semesters.push(['libre'])
    //STORES
    X.sStore({
        id     : 'yearStore',
        fields : ['years'],
        data   : years
    });

    X.sStore({
        id     : 'semStore',
        fields : ['semesters'],
        data   : semesters
    });

    X.sStore({
        id     : 'yearSemStore',
        fields : ['yearSemester'],
        data   : ['1','2']
    });
  
    X.sStore({
        id     : 'secStore',
        fields : ['seccion'],
        data   : secciones
    });
    X.aStore({
        id     : 'edStore',
        fields : ['tipo','nombre'],
        data   : [[1,"Reprogramacion de Horario"],[2,"Edicion de Horario"]]
    });
    X.store({
        id     : 'storeResponsablePrincipal',
        fields : [ 'idCarreraMateria','idProfesor','idCategoria','marca' ]
    });
    X.store({
        id     : 'storeDetallePrincipal',
        fields : [ 'idCarreraMateria','idAula','dia','horaInicio','horaFin','duracionHoras' ]
    });
    X.store({
        id     : 'storeDetalleReducido',
        fields : [ 'materia', 'horas', 'profesores','horasT' ]
    });

    X.store({
        id     : 'horariosStore',
        fields : [ 'dia','hora' ]
    });

    X.store({
        id     : 'storeFacultad',
        fields : [ 'idFacultad', 'nombre' ]
    });

    X.aStore({
        id     : 'diaStore',
        fields : [ 'idDia','nombre' ],
        data   : [ [1,'Lunes'],[2,'Martes'],[3,'Miércoles'],[4,'Jueves'],
        [5,'Viernes'],[6,'Sábado'],[7,'Domingo'] ]
    });

    //funciones de Carga
    var h_cargar_success_curso= function(obj){
        // alert("TOTAL "+obj.total);
        X.load('storeDetallePrincipal',obj);
        var store=X.get('storeDetallePrincipal');
        var storeRed=X.get('storeDetalleReducido');
        var storeP=X.get('storeResponsablePrincipal');
        var cantProf=0;
        var cantHoras=0;
        var defaultData;
        var p;
        var j;
        store.getAt(0).get('duracionHoras')
        var materiactual=store.getAt(0).get('idCarreraMateria');

        for(var k=0;k<store.getCount();k++){
            
            if(materiactual!=store.getAt(k).get('idCarreraMateria')){
                for(j=0;j<storeP.getCount();j++){
                    //alert('hola:'+storeP.getAt(j).get('idCarreraMateria')+' '+materiactual);
                    if(materiactual==storeP.getAt(j).get('idCarreraMateria')){
                        cantProf++;
                    //alert('hola:'+cantProf);
                    }
                }
                var materiaID=materiactual;
                var storeL=X.get('storeMateria');
                var z=X.get('storeMateria').find('idCarreraMateria', materiaID);
                var horasp=X.get('storeMateria').getAt(z).get('horasCatedra');
               // alert(horasp);
                defaultData = {
                    materia:materiactual,
                    horas:cantHoras,
                    profesores:cantProf,
                    horasT:horasp
                };
                p = new storeRed.recordType(defaultData);
                storeRed.add(p);
                cantHoras=0;
                cantProf=0;
            }
            // alert('Horas '+store.getAt(k).get('duracionHoras'));
            cantHoras=cantHoras+store.getAt(k).get('duracionHoras');
            materiactual=store.getAt(k).get('idCarreraMateria');
        }
        for(j=0;j<storeP.getCount();j++){
            //alert('hola:'+storeP.getAt(j).get('idCarreraMateria')+' '+materiactual);
            if(materiactual==storeP.getAt(j).get('idCarreraMateria')){
                cantProf++;
            //alert('hola:'+cantProf);
            }
        }
         materiaID=materiactual;
         storeL=X.get('storeMateria');
         z=X.get('storeMateria').find('idCarreraMateria', materiaID);
         horasp=X.get('storeMateria').getAt(z).get('horasCatedra');
        // alert("hola"+horasp);
        defaultData = {
            materia:materiactual,
            horas:cantHoras,
            profesores:cantProf,
            horasT:horasp
        };
        p = new storeRed.recordType(defaultData);
        storeRed.add(p);
    }
    var h_cargar_success_responsables= function (obj){

        X.load('storeResponsablePrincipal', obj);

    }
    var h_cargar_success_materiascargar= function(obj){
       
        X.load('storeMateria', obj);
    }

    var h_obtener_success = function(obj){
        // alert(obj.total);
        if(obj.total==0){
            alert('No existen cursos para esta materia');
        }
        else if(obj.total>0){
         //  alert("TOTAL "+obj.total);
            X.ajax({
                url: '/tutoriaed/ajax-materiascargar',
                params: {
                    semestre     : X.value('semestre'),
                    anho         : X.value('anho'),
                    semestreanho : X.value('semestreanho'),
                    seccion      : X.value('seccion'),
                    carrera      : X.value('carrera')

                },
                afterSuccess: h_cargar_success_materiascargar
            });
            X.ajax({
                url: '/tutoriaed/ajax-responsables',
                params: {
                    semestre     : X.value('semestre'),
                    anho         : X.value('anho'),
                    semestreanho : X.value('semestreanho'),
                    seccion      : X.value('seccion'),
                    carrera      : X.value('carrera')

                },
                afterSuccess: h_cargar_success_responsables
            });
            X.ajax({
                url: '/tutoriaed/ajax-cursos',
                params: {
                    semestre     : X.value('semestre'),
                    anho         : X.value('anho'),
                    semestreanho : X.value('semestreanho'),
                    seccion      : X.value('seccion'),
                    carrera      : X.value('carrera')

                },
                afterSuccess: h_cargar_success_curso
            });
            X.get('facultad').disable();
            X.get('carrera').disable();
            X.get('anho').disable();
            X.get('seccion').disable();
            X.get('semestreanho').disable();
            X.get('semestre').disable();
            X.get('cargar').enable();
            X.get('cambiar').enable();
            X.get('agregar').enable();
            X.get('fechaInicio').enable();
            X.get('tipoEdicion').enable();
            X.get('responsablesPrincipalGrid').expand();
            X.get('materiasPrincipalGrid').expand();
            X.get('aceptar').disable();


        
        }
    }

    var h_cargar_success = function(obj){
        window.location = '/tutoriaed'
    }
    var h_horasfailure =function(){
        X.focus('agregar');
    };
    var h_fechafailure=function(){
        X.focus('fechaInicio');
    }
     var  h_tipofailure=function(){
        X.focus(tipo.getId());
    }
    var h_confirmar = function(row){

        var respA=  X.store({
            fields : [ 'materia','profesor','categoria','marca' ]
        });
        var matA= X.store({
            fields : [ 'materia','aula','dia','inicio','fin','horas' ]
        });

        var mat = row.get('materia');
        var storeM = X.get('storeDetallePrincipal');
        var storeR = X.get('storeResponsablePrincipal');
        var indexes = 0;
        var indexes2 = 0;
        var i= 0;
        var i2= 0;
        for (var n=0;n<storeM.getCount();n++){
            if(storeM.getAt(n).get('idCarreraMateria')!=mat){
                var defaultData = {
                    materia:storeM.getAt(n).get('idCarreraMateria'),
                    aula:storeM.getAt(n).get('idAula'),
                    dia:storeM.getAt(n).get('dia'),
                    inicio:storeM.getAt(n).get('horaInicio'),
                    fin:storeM.getAt(n).get('horaFin'),
                    horas:storeM.getAt(n).get('duracionHoras')
                };
                var p = new matA.recordType(defaultData);
                matA.add(p);
            }
        }
        for (n=0;n<storeR.getCount();n++){
            if(storeR.getAt(n).get('idCarreraMateria')!=mat){
                defaultData = {
                    materia:storeR.getAt(n).get('idCarreraMateria'),
                    profesor:storeR.getAt(n).get('idProfesor'),
                    categoria:storeR.getAt(n).get('idCategoria'),
                    marca:storeR.getAt(n).get('marca')
                };
                p = new respA.recordType(defaultData);
                respA.add(p);
            }
        }

        storeM.removeAll();
        storeR.removeAll();
        var gridR = X.get('responsablesPrincipalGrid');
        gridR.stopEditing();
        for (n=0;n<matA.getCount();n++){
            defaultData = {
                idCarreraMateria:matA.getAt(n).get('materia'),
                idAula:matA.getAt(n).get('aula'),
                dia:matA.getAt(n).get('dia'),
                horaInicio:matA.getAt(n).get('inicio'),
                horaFin:matA.getAt(n).get('fin'),
                duracionHoras:matA.getAt(n).get('horas')
            };
            p = new storeM.recordType(defaultData);
            storeM.add(p);

        }
        for (n=0;n<respA.getCount();n++){
            defaultData = {
                idCarreraMateria:respA.getAt(n).get('materia'),
                idProfesor:respA.getAt(n).get('profesor'),
                idCategoria:respA.getAt(n).get('categoria'),
                marca:respA.getAt(n).get('marca')
            };
            p = new gridR.store.recordType(defaultData);
            gridR.store.add(p);
        }

        var gridP=X.get('materiasPrincipalGrid');
        var ind = gridP.store.findExact('materia',mat);
        gridP.store.removeAt(ind);

        if (ind < gridP.store.getCount()){
            gridP.getSelectionModel().selectRow(ind);
        }
        else{
            gridP.getSelectionModel().selectRow(ind-1);
        }
        matA.removeAll();
        respA.removeAll();
    }


    var h_eliminar = function(row){
        var storeL=X.get('storeMateria');
        var i=storeL.find('idCarreraMateria', row.get('materia'));
        var name=storeL.getAt(i).get('nombre');
        X.msg.confirm('Está seguro de eliminar la materia "'+name+'"?',X.call(h_confirmar, row));
    }


    var h_editar = function(row){
        var respA=  X.store({
            fields : [ 'materia','profesor','categoria','marca' ]
        });
        var matA= X.store({
            fields : [ 'materia','aula','dia','inicio','fin','horas' ]
        });
        var mat = row.get('materia');
        var storeM = X.get('storeDetallePrincipal');
        var storeR = X.get('storeResponsablePrincipal');
        var storeMa = X.get('storeDetalle');
        var storeRe = X.get('storeResponsable');
        var z=0;
        for (var n=0;n<storeM.getCount();n++){
            if(storeM.getAt(n).get('idCarreraMateria')!=mat){
                //Aca se carga el store matA que sirve para recargar el principal
                //   alert(storeM.getAt(n).get('idCarreraMateria')+' '+storeM.getAt(n).get('idAula')+' '+storeM.getAt(n).get('dia')+' '+storeM.getAt(n).get('horaInicio')+' '+storeM.getAt(n).get('horaFin'));
                var defaultData = {
                    materia: storeM.getAt(n).get('idCarreraMateria'),
                    aula: storeM.getAt(n).get('idAula'),
                    dia: storeM.getAt(n).get('dia'),
                    inicio: storeM.getAt(n).get('horaInicio'),
                    fin: storeM.getAt(n).get('horaFin'),
                    horas: storeM.getAt(n).get('duracionHoras')
                };
                //  alert('Variable "defaultData" '+defaultData.materia+' '+defaultData.aula+' '+defaultData.dia+' '+defaultData.inicio+' '+defaultData.fin);
                var p = new matA.recordType(defaultData);
                //   alert('Variable "p" '+p.get('materia')+' '+p.get('aula')+' '+p.get('dia')+' '+p.get('inicio')+' '+p.get('fin'));
                matA.add(p);
            // alert('Variable "matA" '+matA.getAt(z).get('materia')+' '+matA.getAt(z).get('aula')+' '+matA.getAt(z).get('dia')+' '+matA.getAt(z).get('inicio')+' '+matA.getAt(z).get('fin'));
            // z++;
            }else{
                // alert(storeM.getAt(n).get('horaInicio')+' '+storeM.getAt(n).get('horaFin')+' '+typeof storeM.getAt(n).get('horaInicio')+' '+typeof storeM.getAt(n).get('horaFin'));
                defaultData = {
                    // materia:storeM.getAt(n).get('idCarreraMateria'),
                    aula:storeM.getAt(n).get('idAula'),
                    dia:storeM.getAt(n).get('dia'),
                    inicio:storeM.getAt(n).get('horaInicio'),
                    fin:storeM.getAt(n).get('horaFin'),
                    horas:storeM.getAt(n).get('duracionHoras')
                };
                // alert('hola'+defaultData.inicio+' '+defaultData.fin);
                var r = new storeMa.recordType(defaultData);
                // alert('r.inicio '+r.get('inicio')+' r.fin '+r.get('fin'));
                storeMa.add(r);
            //                alert('Variable "storeMateria" '+storeMa.getAt(z).get('materia')+' '+storeMa.getAt(z).get('aula')+' '+storeMa.getAt(z).get('dia')+' '+storeMa.getAt(z).get('inicio')+' '+storeMa.getAt(z).get('fin'));
            //                z++;
               
            }
        }
        for (n=0;n<storeR.getCount();n++){
            if(storeR.getAt(n).get('idCarreraMateria')!=mat){
                //Aca se carga el store respA que sirve para el principal
                defaultData = {
                    materia:storeR.getAt(n).get('idCarreraMateria'),
                    profesor:storeR.getAt(n).get('idProfesor'),
                    categoria:storeR.getAt(n).get('idCategoria'),
                    marca:storeR.getAt(n).get('marca')
                };
                p = new respA.recordType(defaultData);
                respA.add(p);
            }else{
                //Aca se carga el store storeRe que sirve para editar
                defaultData = {
                    // materia:storeR.getAt(n).get('idCarreraMateria'),
                    profesor:storeR.getAt(n).get('idProfesor'),
                    categoria:storeR.getAt(n).get('idCategoria'),
                    marca:storeR.getAt(n).get('marca')
                };
                p = new storeRe.recordType(defaultData);
                storeRe.add(p);
            }
        }
        storeM.removeAll();
        storeR.removeAll();
        for (n=0;n<matA.getCount();n++){
            // alert('MATERIA:'+matA.getAt(n).get('materia')+' Inicio: '+matA.getAt(n).get('inicio')+' Fin: '+matA.getAt(n).get('fin'));
            defaultData = {
                idCarreraMateria: matA.getAt(n).get('materia'),
                idAula:matA.getAt(n).get('aula'),
                dia:matA.getAt(n).get('dia'),
                horaInicio:matA.getAt(n).get('inicio'),
                horaFin:matA.getAt(n).get('fin'),
                duracionHoras:matA.getAt(n).get('horas')
            };
            p = new storeM.recordType(defaultData);
            storeM.add(p);
        }
        var gridR = X.get('responsablesPrincipalGrid');
        gridR.stopEditing();
        for (n=0;n<respA.getCount();n++){
            defaultData = {
                idCarreraMateria:respA.getAt(n).get('materia'),
                idProfesor:respA.getAt(n).get('profesor'),
                idCategoria:respA.getAt(n).get('categoria'),
                marca:respA.getAt(n).get('marca')
            };
            p = new gridR.store.recordType(defaultData);
            gridR.store.add(p);
        }
        var gridMaterias= X.get('materiasGrid');
        var gridResp= X.get('responsablesGrid');
        var gridP=X.get('materiasPrincipalGrid');
        var ind = gridP.store.findExact('materia',mat);
        gridP.store.removeAt(ind);
        X.get('materiaMateria').setValue(mat);
        X.get('materiaWindow').show();
    }



    var h_empty_facultad = function(){
        X.focus('facultad');
    }
    var h_empty_carrera  = function(){
        X.focus('carrera');
    }
    var h_empty_anho     = function(){
        X.focus('anho');
    }
    var h_empty_seccion  = function(){
        X.focus('seccion');
    }
    var h_empty_semanho  = function(){
        X.focus('semestreanho');
    }
    var h_empty_semestre = function(){
        X.focus('semestre');
    }

    var columnRenderer = function(value){
        var combo = this.editor
        var r = combo.findRecord(combo.valueField, value);
        return r ? r.get(combo.displayField) : combo.valueNotFoundText;
    }

    

    X.grid.panel({
        id          : 'materiasPrincipalGrid',
        title       : 'Materias',
        collapsed   : true,
        height      : 200,
        width       : 625,
        storeId     : 'storeDetalleReducido',
        x           : 10,
        y           : 140,
        columns     :[
        X.grid.text  ({
            header: 'Materia',
            dataIndex: 'materia',
            width: 200,
            renderer: function(value){
                var storeL=X.get('storeMateria');
                var i=storeL.findExact('idCarreraMateria', value);
                var name=storeL.getAt(i).get('nombre');
                return name;
            }


        }),
        X.grid.text  ({
            header: 'Horas Acumuladas',
            dataIndex: 'horas',
            width:110
        }),
        X.grid.text  ({
            header: 'Horas Necesarias',
            dataIndex: 'horasT',
            width: 110
        }),
        X.grid.text  ({
            header: 'Cantidad de profesores',
            dataIndex: 'profesores',
            width: 140
        }),
        X.grid.edit  ({
            handler : h_editar
        }),
        X.grid.remove({
            handler : h_eliminar
        })
        ]
    });


    X.grid.panel({
        id          : 'responsablesPrincipalGrid',
        title       : 'Responsables',
        collapsed   : true,
        height      : 200,
        width       : 625,
        storeId     : 'storeResponsablePrincipal',
        x           : 10,
        y           : 350,

        columns     :[
        X.grid.text  ({
            header: 'Materia',
            dataIndex: 'idCarreraMateria',
            width: 300,
            renderer: function(value){
                var storeL=X.get('storeMateria');
                var i=storeL.findExact('idCarreraMateria', value);
                var name=storeL.getAt(i).get('nombre');
                return name;
            }
        }),
        X.grid.text  ({
            header: 'Profesor',
            dataIndex: 'idProfesor',
            width: 150,
            renderer: function(value){
                var storeL=X.get('storeProfesor');
                var i=storeL.findExact('idProfesor', value);
                var name=storeL.getAt(i).get('nombreCompleto');
                return name;
            }
        }),
        X.grid.text  ({
            header: 'Categoría',
            dataIndex: 'idCategoria',
            width: 110,
            renderer: function(value){
                var storeL=X.get('storeCategoria');
                var i=storeL.findExact('idCategoria', value);
                var name=storeL.getAt(i).get('nombre');
                return name;
            }
        }),
        X.grid.text  ({
            header: 'Marca',
            dataIndex: 'marca',
            width: 55,
            renderer: function(value){
                var storeL=X.get('marcaStore');
                var bool;
                if(value){
                    bool=1;
                }else{
                    bool=2;
                }
                var i=storeL.findExact('idMarca',bool);
                var name=storeL.getAt(i).get('nombre');
                return name;
            }
        })

        ]
    });
    var tipo=X.form.combo  ({
        x:90,
        y:70,
        width:295,
        id:'tipoEdicion',
        dfield:'nombre',
        vfield:'tipo',
        disabled: true,
        storeId:'edStore'
    });
    tipo.addListener('select',function ( combo, record, index) {
        if(record.data.tipo==2){
            
        X.get('fechaInicio').setValue('');
        X.get('fechaInicio').disable();
        }else{
          X.get('fechaInicio').enable();
        }
        //alert('HOLA '+record.data.tipo);
    // alert(newValue+" "+oldValue+" "+field);
    });
    X.form.panel({
        id     : 'loadHorarioForm',
        height : 600,
        width  : 675,
        items  : [
        X.form.hidden ({
            id:'editorRows'
        }),
        X.form.label  ({
            x:10,
            y:16,
            text:'Facultad:'
        }),
        X.form.label  ({
            x:390,
            y:16,
            text:'Año:'
        }),
        X.form.label  ({
            x:510,
            y:16,
            text:'Semestre del año:'
        }),
        X.form.label  ({
            x:10,
            y:46,
            text:'Carrera:'
        }),
        X.form.label  ({
            x:10,
            y:76,
            text:'Tipo Edicion:'
        }),
        X.form.label  ({
            x:10,
            y:106,
            text:'Fecha de Inicio:'
        }),
        X.form.label  ({
            x:390,
            y:46,
            text:'Sección:'
        }),
        X.form.label  ({
            x:510,
            y:46,
            text:'Semestre:'
        }),
        X.form.combo  ({
            x:90,
            y:10,
            width:295,
            id:'facultad',
            dfield:'nombre',
            vfield:'idFacultad',
            storeId:'storeFacultad'
        }),
        X.form.combo  ({
            x:435,
            y:10,
            width:60,
            id:'anho',
            value: currYear,
            dfield:'years',
            vfield:'years',
            storeId:'yearStore'
        }),
        X.form.combo  ({
            x:610,
            y:10,
            width:45,
            id:'semestreanho',
            value: currSem,
            dfield:'yearSemester',
            vfield:'yearSemester',
            storeId:'yearSemStore'
        }),
        X.form.combo  ({
            x:90,
            y:40,
            width:295,
            id:'carrera',
            dfield:'nombre',
            vfield:'idCarrera',
            storeId:'storeCarrera'
        }),
        X.form.combo  ({
            x:435,
            y:40,
            width:60,
            id:'seccion',
            value: 'A',
            dfield:'seccion',
            vfield:'seccion',
            storeId:'secStore'
        }),
        X.form.combo  ({
            x:610,
            y:40,
            width:45,
            id:'semestre',
            dfield:'semesters',
            vfield:'semesters',
            storeId:'semStore'
        }),
        tipo
        ,
        X.form.date  ({
            x:90,
            y:100,
            // width:295,
            id:'fechaInicio',
            disabled: true,
            disabledDays:  [0]
        }),
        X.form.button ({
            x:575,
            y:70,
            width:80,
            id:'aceptar',
            text:'Aceptar'
        }),
        X.form.button ({
            x:485,
            y:70,
            width:80,
            id:'agregar',
            text:'Agregar',
            disabled: true
        }),
        X.form.button ({
            x:395,
            y:70,
            width:80,
            id:'cambiar',
            text:'Cambiar',
            disabled: true
        }),
        X.form.button ({
            x:575,
            y:560,
            width:80,
            id:'cargar',
            text:'Cargar',
            disabled: true
        }),
        X.get('materiasPrincipalGrid'),
        X.get('responsablesPrincipalGrid')
        ]
    });
    
    // X.get('tipoEdicion').addListener
    X.event.button('agregar', function(){
        X.get('materiasGrid').store.removeAll();
        X.get('responsablesGrid').store.removeAll();
        X.get('materiaWindow').show();
    });
    X.event.button('cambiar', function(){
        X.get('storeMateria').removeAll();
        X.get('storeDetalleReducido').removeAll();
        X.get('storeDetallePrincipal').removeAll();
        X.get('storeResponsablePrincipal').removeAll();
        X.get('facultad').enable();
        X.get('carrera').enable();
        X.get('anho').enable();
        X.get('seccion').enable();
        X.get('semestreanho').enable();
        X.get('semestre').enable();
        X.get('materiasPrincipalGrid').collapse();
        X.get('responsablesPrincipalGrid').collapse();
        X.get('cargar').disable();
        X.get('cambiar').disable();
        X.get('fechaInicio').disable();
        X.get('tipoEdicion').disable();
        X.get('agregar').disable();
        X.get('aceptar').enable();
    });
    X.event.button('aceptar', function(){
        if (X.isempty('facultad'))
            X.msg.failure('Seleccione una "Facultad".', h_empty_facultad      );
        else if (X.isempty('carrera'))
            X.msg.failure('Seleccione una "Carrera".', h_empty_carrera        );
        else if (X.isempty('anho'))
            X.msg.failure('Seleccione un "Año".', h_empty_anho                );
        else if (X.isempty('seccion'))
            X.msg.failure('Seleccione una "Sección".', h_empty_seccion        );
        else if (X.isempty('semestreanho'))
            X.msg.failure('Seleccione un "Semestre del año".', h_empty_semanho);
        else if (X.isempty('semestre'))
            X.msg.failure('Seleccione un "Semestre".', h_empty_semestre       );
        else{
            X.ajax({
                url: '/tutoriaed/ajax-materias',
                params: {
                    semestre     : X.value('semestre'),
                    anho         : X.value('anho'),
                    semestreanho : X.value('semestreanho'),
                    seccion      : X.value('seccion'),
                    carrera      : X.value('carrera')
                },
                afterSuccess: h_obtener_success
            });


        }
    });

    X.event.button('cargar', function(){

        var storeM = X.get('storeDetallePrincipal');
        var storeR = X.get('storeResponsablePrincipal');
        var rowCountM = storeM.getCount();
        var rowCountR = storeR.getCount();
        var gridM= X.get('materiasPrincipalGrid')
        var gridR= X.get('responsablesPrincipalGrid')
       if(!tipo.getValue()){
         X.msg.failure('Debe elegir un tipo de edicion',h_tipofailure);
          return;
        }
        if (rowCountM<=0){
            X.msg.failure('Debe insertar al menos una materia');
        }
        else{

            var i=0;
            //            grid.getSelectionModel().selectAll();
            //            var sm = grid.getSelectionModel().getSelections();

            var detalles = new Array();
            var responsables = new Array();
            var detalleR = new Array();
            for (i=0; i<storeM.getCount(); i++) {
                var data = {
                    materia:'',
                    aula:'',
                    dia:'',
                    inicio:'',
                    fin:'',
                    horas:''
                };
                data.materia=storeM.getAt(i).get('idCarreraMateria');
                if(storeM.getAt(i).get('idAula')){
                    data.aula=storeM.getAt(i).get('idAula');
                }else{
                    data.aula='';
                }
                data.dia=storeM.getAt(i).get('dia');
                data.inicio=storeM.getAt(i).get('horaInicio');
                data.fin=storeM.getAt(i).get('horaFin');
                data.horas=storeM.getAt(i).get('duracionHoras');
                detalles.push(data);
                delete data;
                data = {};
            }

            for (i=0; i<storeR.getCount(); i++) {
                data = {
                    materia:'',
                    profesor:'',
                    categoria:'',
                    marca:''
                };
                data.materia=storeR.getAt(i).get('idCarreraMateria');
                data.profesor=storeR.getAt(i).get('idProfesor');
                data.categoria=storeR.getAt(i).get('idCategoria');
                data.marca=storeR.getAt(i).get('marca');
                responsables.push(data);
                delete data;
                data = {};
            }

            for (i=0; i<gridM.store.getCount(); i++) {
                data = {
                    materia:'',
                    horas:'',
                    profesores:''

                };
                data.materia=gridM.store.getAt(i).get('materia');
                data.horas=gridM.store.getAt(i).get('hoas');
                data.profesores=gridM.store.getAt(i).get('profesores');
                detalleR.push(data);
                delete data;
                data = {};
            }/*
            for(i=0;i<gridM.store.getCount();i++){

                var materiaID=gridM.store.getAt(i).get('materia');
                var storeL=X.get('storeMateria');
                var z=storeL.find('idCarreraMateria', materiaID);

                var name=storeL.getAt(z).get('nombre');
                var horas=storeL.getAt(z).get('horasCatedra');
                if(horas!=gridM.store.getAt(i).get('horas')){
                    X.msg.failure('La cantidad de horas de la materia:'+name+' no coincide',h_horasfailure);
                    return;
                }
            }*/
            if(tipo.getValue()==1){
                if(X.get('fechaInicio').getValue()==""){
                    X.msg.failure("El tipo de edicion es 'Reprogramacion' debe indicar una fecha de inicio",h_fechafailure);
                    return;
                }
            }

            X.ajax({
                url: '/tutoriaed/ajax-cargar',
                params: {
                    semestre     : X.value('semestre'),
                    anho         : X.value('anho'),
                    semestreanho : X.value('semestreanho'),
                    seccion      : X.value('seccion'),
                    carrera      : X.value('carrera'),
                    tipo         : X.value('tipoEdicion'),
                    fecha        : X.get('fechaInicio').getValue(),
                    detalles     : Ext.encode(detalles),
                    responsables : Ext.encode(responsables),
                    detalleR : Ext.encode(detalleR)
                },

                afterSuccess: h_cargar_success
            });
        }
    });

    X.win.panel({
        id       : 'creaWindow',
        title    : 'Carga de horario de tutorías',
        modal    : false,
        items    : X.get('loadHorarioForm')
    });

    X.get('creaWindow').show();

});

